How to check the module is under synergy control

I need to open each module in exclusive edit mode to update several attributes.

if the module is under synergy control, i do like to skip the module.

how to check in dxl the module is in synergy control.

Any suggestion is appreciated.

thanks,

FZ
faisal.zahidi@boeing.com - Wed Jun 09 19:05:21 EDT 2010

Re: How to check the module is under synergy control
SudarshanRao - Thu Jun 10 04:13:17 EDT 2010

In earlier versions of integration, if the module is enabled for integration, it used to store the configuration details in conf area of the database. To be precise:
DOORSDATA\conf\u1000001.dir
In this directory, folders with name csint+AF8-00001f00 are created where the last 8 digits represent the unique ID of the module.

Thus, every module enabled for integration has such a folder created in this area. In the respective module's folder, there will be a "config.dat" file, which contains info about whether the integration is enabled and if yes, what options are enabled (RCM or IR etc).

You can access this file and parse the content to know if the module is enabled for integration or not.

You can access/read files in this area of database using confStream with type as confSystem. For more info on this, refer to "Configuration file access" section in DXL Reference Manual.

Hope this helps.

Cheers,
Sudarshan

Re: How to check the module is under synergy control
llandale - Fri Jun 11 12:11:08 EDT 2010

SudarshanRao - Thu Jun 10 04:13:17 EDT 2010
In earlier versions of integration, if the module is enabled for integration, it used to store the configuration details in conf area of the database. To be precise:
DOORSDATA\conf\u1000001.dir
In this directory, folders with name csint+AF8-00001f00 are created where the last 8 digits represent the unique ID of the module.

Thus, every module enabled for integration has such a folder created in this area. In the respective module's folder, there will be a "config.dat" file, which contains info about whether the integration is enabled and if yes, what options are enabled (RCM or IR etc).

You can access this file and parse the content to know if the module is enabled for integration or not.

You can access/read files in this area of database using confStream with type as confSystem. For more info on this, refer to "Configuration file access" section in DXL Reference Manual.

Hope this helps.

Cheers,
Sudarshan

Don't know anything about Synergy but I do about config files. Presuming this post is correct, I believe you can access this file like this.

string  GetSynergyConfigFile(Module mod)
{   // Get the name of the Synergy Configuration file for the given module,
    //   if it exists.
    // Return null if it doesn't exist (module not configured for Synergy)
    // Note: these config files are stored in a folder whose name has
    //    the unique ID of the module; NameFile thus contains a slash.
 
   if (null mod) return("")
 
   string NameFile = "csint_" (uniqueID(mod)) "/config.dat"
   bool   Exists = confFileExists(NameFile, confSystem)
          print ">>GetSynergyConfigFile\t" (name(mod)) "\t" Exists "\t[" NameFile "]\n"
   if (Exists)
   then return(NameFile)
   else return("")
}  // end GetSynergyConfigFile()
 
void   ReadSynergyConfigFile(Module mod)
{      // read and print the config file
 
    string  NameFile = GetSynergyConfigFile(mod)
    if (!null NameFile)
    {  ConfStream cs = confRead(NameFile, confSystem)
       print "Contents of ConfFile '" NameFile "'\n"
       while (true)
       {  cs >> Line
          if (end cs) break
          print Line "\n"
       }
       close(cs)
    }
}   // end ReadSynergyConfigFile()


I did not try the code but it should get you going. I would find a module that is indeed under control, run this DXL therein to print the file contents. Based on what those contents look like, write more code that lets you read the contents and determine if its actually, right now, under Synergy control. Its entirely possible that the first line says "true" or "false" making such code easy.

PS. My 'end' statement may be out of place; perhaps you need to print the valid line before checking end, I don't recall.